function Figure_Pair(Folder,SS,List_IRF,List_IRFLabel)

% List_IRF    =   {IRF_Baseline,IRF_ER_Fixed};
% List_IRFLabel=  {'Flexible Exchange Rate','Fixed Exchange Rate'};

% Setup
mkdir(Folder);
T_IRF           =   12;
XT              =   0+(0:1:T_IRF)';
List_Shock      =   {'Eps_Eta_M_dom','Eps_Eta_M_ext','Eps_Eta_Y_H','Eps_Eta_p_F',...
                     'Eps_Eta_Z','Eps_Eta_Z_N','Eps_Eta_Z_H'};

%% Flexible vs. Fixed: Aggregate Consumption
%--------------------------------------------------------------------------
% Setup
%--------------------------------------------------------------------------
N_col       =   1;
N_row       =   1;
fig_size    =   [N_col,N_row].*[1,0.75]*1/2.5; 
fig_gap     =   [0.02,0.02];
fig_VMargin =   [0.15,0.02];
fig_HMargin =   [0.15,0.02]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);

LEG         =   @(PH,LabelList)legend(PH,LabelList,'fontsize',8,'interpreter','latex','location','best');
XLabel      =   @(Label)xlabel(Label,'fontsize',8,'interpreter','latex');
YLabel      =   @(Label)ylabel(Label,'fontsize',8,'interpreter','latex');

AxisSetup   =   GR_Axis('TickFmt',struct('X','%g','Y','%.1f'),...
                        'FontSize',struct('X',8,'Y',8),...
                        'Exponent',struct('X',0,'Y',0),...
                        'Box','off');

Tick_X      =   @(X)GR_TickValue('Unit',4).Setup(X);
Tick_Y      =   @(Y)GR_TickValue('Symmetric',0).Setup(Y);

TempFun_LP  =   @(S,C)GR_Line('Style',S,'Color',MyColor(C),'Width',3);
List_LP     =   {TempFun_LP('-','Blue'); TempFun_LP('--','Red')};

parfor ii_Sh=1:length(List_Shock)
    SH          =   List_Shock{ii_Sh};

    % Consumption: Aggregate
    TempIRF         =   zeros(length(List_IRF),T_IRF+1);
    for ii_irf=1:length(List_IRF)
        TempIrf         =    List_IRF{ii_irf}.(SH).C*100;
        TempIRF(ii_irf,:)=   TempIrf(:,1:T_IRF+1);
    end

    Fig         =   FigureSetup(['Consumption Dispersion to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    [PH,ax]     =   Plot_IRF(TempIRF,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIRF),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter'); YLabel('Deviation from steady state (pp)');
    LEG(PH,List_IRFLabel);

    print('-depsc','-r1000',Fig,[Folder,'C_',SH]);
    close(Fig);
    
    % Consumption: Dispersion (Non-Normalized)
    TempIRF         =   zeros(length(List_IRF),T_IRF+1);
    for ii_irf=1:length(List_IRF)
        TempIrf         =    List_IRF{ii_irf}.(SH).ConsDist.Disp(1,:)*100;
        TempIRF(ii_irf,:)=   TempIrf(:,1:T_IRF+1);
    end
    
    Fig         =   FigureSetup(['Consumption Dispersion to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    [PH,ax]     =   Plot_IRF(TempIRF,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIRF),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter'); YLabel('Deviation from steady state');
    LEG(PH,List_IRFLabel);

    print('-depsc','-r1000',Fig,[Folder,'ConsDisp_DevDisp_Level_',SH]);
    close(Fig);
    
    % Consumption: Dispersion (Normalized)
    TempIRF         =   zeros(length(List_IRF),T_IRF+1);
    for ii_irf=1:length(List_IRF)
        [MaxAbsC_Val,MaxAbsC_Idx] ...
                        =   max(abs(List_IRF{ii_irf}.(SH).C));
        TempIrf         =    List_IRF{ii_irf}.(SH).ConsDist.Disp(1,:)/MaxAbsC_Val;
        TempIRF(ii_irf,:)=   TempIrf(:,1:T_IRF+1);
    end
   
    Fig         =   FigureSetup(['Consumption Dispersion to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    [PH,ax]     =   Plot_IRF(TempIRF,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIRF),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter'); YLabel('Deviation from steady state');
    LEG(PH,List_IRFLabel);

    print('-depsc','-r1000',Fig,[Folder,'ConsDisp_DevDisp_Normalized_',SH]);
    close(Fig);
end



%% Appendix
VarDict     =   struct('C','Consumption','C_N','Consumption: N','C_H','Consumption: H','C_F','Consumption: F',...
                       'L_N','Hours: N','L_H','Hours: H','w_N','Wage: N','w_H','Wage: H',......
                       'Y','Output','Y_N','Output: N','Y_H','Output: H','dE','Depreciation',...
                       'ir','Domestic Nominal Rate','ir_s','Foreign Nominal Rate','AggDomesticAsset','Total Domestic Bond','AggForeignAsset','Total Foreign Bond',...
                       'Pir','Inflation','Pir_N','Inflation: N','Pir_H','Inflation: H','Pir_F','Inflation: F', ...
                       'EffReturn_Pos','Nominal Return: Int. Saver','EffReturn_Neg','Nominal Return: Int. Borrower','DomShare_Pos','Porfolio: Int. Saver','DomShare_Neg','Portfolio: Int. Borrower', ...
                       'DevUIP','Deviation of UIP','RelPrice','Relative Price' ...
                       );
% 'Eta_M_dom','MP: Domestic','Eta_M_ext','MP: Foreign','Eta_Y_H','Demand: Foreign'
% 'Eta_Z','TFP','Eta_Z_N','TFP: N','Eta_Z_H','TFP: H',...'dE_Real','Real Exchange', ...
% 'Bp_dom','Saving: Domestic','Bp_ext','Saving: Foreign',
% 'E','CAD/USD','CPI','CPI', 'T','Transfer','TAU','Tax Rate','B','Gov. Bond','Profit','Profit' ...
                       
VarList     =   fieldnames(VarDict);

% Graph
Num_Var     =   length(VarList);
Num_Shock   =   length(List_Shock);

N_col       =   4;
N_row       =   ceil(Num_Var/N_col);
fig_size    =   [N_col,N_row].*[1,0.75]*1/4;  
fig_gap     =   [0.04,0.03];
fig_VMargin =   [0.03,0.03];
fig_HMargin =   [0.03,0.01]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);

AxisSetup   =   GR_Axis('TickFmt',struct('X','%g','Y','%.2g'),...
                        'FontSize',struct('X',6,'Y',6),...
                        'Exponent',struct('X',0,'Y',0),...
                        'Box','off');

Tick_X      =   @(X)GR_TickValue('Unit',4).Setup(X);
Tick_Y      =   @(Y)GR_TickValue('Symmetric',1).Setup(Y);

TempFun_LP  =   @(S,C)GR_Line('Style',S,'Color',MyColor(C),'Width',3);
List_LP     =   {TempFun_LP('-','Blue'),TempFun_LP('--','Red')};

for ii_sh=1:Num_Shock
    SH          =   List_Shock{ii_sh};
    fig_Handle  =   FigureSetup(['IRF-',SH],fig_size);
    for ii_vv=1:Num_Var
        VV              =   VarList{ii_vv};
        ax              =   fig_SubPlot(ii_vv);
        TempIRF         =   zeros(length(List_IRF),T_IRF+1);
        for ii_IRF=1:length(List_IRF)
            IRF             =   List_IRF{ii_IRF};
            if strcmp(VV,'dE_Real')
                TempIrf         =   IRF.(SH).dE-IRF.(SH).Pir;
            elseif strcmp(VV,'E')
                TempIrf         =   cumsum(IRF.(SH).dE);
            elseif strcmp(VV,'CPI')
                TempIrf         =   cumsum(IRF.(SH).Pir);
            else
                TempIrf         =   IRF.(SH).(VV);
            end
            TempIRF(ii_IRF,:)   =   TempIrf(:,1:T_IRF+1);
        end
        TempIRF(abs(TempIRF)<1e-6)  =   0;
        AxisSetup.Exponent  =   struct('X',0,'Y',floor(log(max(max(abs(TempIRF(:))),1e-7))/log(10)));
        [PH,ax]     =   Plot_IRF(TempIRF,'ax',ax,'LineProperty',List_LP,...
                                 'XTick',Tick_X(XT),'YTick',Tick_Y(TempIRF),...
                                 'AxisProperty',AxisSetup,'Symmetric',1);
        title(VarDict.(VV),'fontsize',8,'interpreter','latex');

    end

    print(fig_Handle,[Folder,'Full_',SH],'-depsc'); 
    close(fig_Handle);
end


%% Web Plots
N_col       =   1;
N_row       =   1;
% fig_size    =   [N_col,N_row].*[1,1]*1/3; 
fig_size    =   [N_col,N_row].*[1.05,0.9]*1/2.5;

AxFontSize  =   8;
%--------------------------------------------------------------------------
% Webplot, by FI x RI
%--------------------------------------------------------------------------
fig_gap     =   [0.00,0.00];
fig_VMargin =   [0.00,0.00];
fig_HMargin =   [0.00,0.00]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);

LEG         =   @(LabelList)legend(LabelList,'fontsize',AxFontSize,'interpreter','latex',...
                                              'location','southoutside','Orientation','Vertical');
                                            
                                            
parfor jj=1:length(List_Shock)
    SH          =   List_Shock{jj};
    TempList    =   cell(1,length(List_IRF));
    for ii=1:length(List_IRF)
        TempList{ii}    =   List_IRF{ii}.(SH);
    end
    % Normalized
    Fig         =   FigureSetup(['Distributional Effect by FIxRI'],fig_size);
    ax          =   fig_SubPlot(1);
    TempFun_WebPlot(TempList);
    LEG(List_IRFLabel);
    
    print('-depsc','-r1000',Fig,[Folder,'ConsDist_AvgDevByFIxRI_',SH]);
    close(Fig);
    
    Fig         =   FigureSetup(['Web Plot, Distributional Effect by FI x RI, Normalized, Simplified'],fig_size);
    ax          =   fig_SubPlot(1);
    TempFun_WebPlot_4Dim(TempList);
     LEG(List_IRFLabel);
    print('-depsc','-r1000',Fig,[Folder,'ConsDist_AvgDevByFIxRI_Simplified_',SH]);
    close(Fig);
end
